using UnityEngine;

namespace UbiArt.ITF {
	[Games(GameFlags.RL)]
	public partial class Unknown_RL_120_sub_6D1C30 : ActorComponent_Template {
		public int DrawDebugHit;
		public Path BodyPath;
		public Path TailPath;
		public float modulesAnimOffset;
		public float vulnerabilityDuration;
		public float hitCooldownDuration;
		public uint maxBashingHitcount;
		public float attackHitDuration;
		public int projectilesEnabled;
		public Path projectilesPath;
		public uint projectilesTrajectoryCount;
		public Angle projectilesTrajectoryAngleMax;
		public uint projectileWaveCount;
		public float projectileWaveTime;
		public Vec3d projetileLaunchOffset;
		public float attackWaitDuration;
		public float laserShootDuration;
		public uint laserMax;
		public float cameraSpeedFactorMin;
		public float cameraSpeedFactorMax;
		public float cameraSpeedBlendFactor;
		public float SlowDownDist;
		public float headRotationBlend;
		public uint faction;
		public Enum_receivedHitType receivedHitType;
		public float laserMaxlength;
		public Path laserHarmlessPath;
		public Path laserHarmfullPart01Path;
		public Path laserHarmfullPart02Path;
		public Path laserHarmfullPart03Path;
		public Path laserHarmfullPart04Path;
		public float laserHarmfullScaleX;
		public float laserHarmlessScaleX;
		public Vec3d laserLaunchOffset;
		public float laserShapeThickness;
		public float immuneHitDuration;
		public uint hurtMaxPerPhase;
		public float moduleGap;
		public float headGap;
		public Generic<PhysShape> diamondShape;
		public Generic<PhysShape> jawUpShape;
		public Generic<PhysShape> jawLowShape;
		public Generic<PhysShape> laserShape;
		public float minTimeToSetPlayRate;
		public float wakeUpModuleDelay;
		public float hurtModuleDelay;
		public Path explodePart01Path;
		public Path explodePart02Path;
		public Path explodePart03Path;
		public float explodePartLifeTime;
		public uint explodePartPhaseModuleCount;
		public float biteMinTime;
		public float biteMaxTime;
		public float timeToReachMaxAcceleration;
		public float minDistToMove;
		public float minDistToStop;
		public float minDistToOrient;
		public float orientBlend;
		public Vec3d fxOffsetLaserStart;
		public Vec3d fxOffsetLaserImpact;
		public Vec3d fxOffsetGrowlSmokePhase01;
		public Vec3d fxOffsetGrowlSmokePhase02;
		public Vec3d fxOffsetGrowlSmokePhase03;
		public Vec3d fxOffsetEyeR;
		public Vec3d fxOffsetEyeL;
		public Vec3d fxOffsetDiamond;
		public Vec3d fxOffsetScanLPhase01;
		public Vec3d fxOffsetScanLPhase02;
		public Vec3d fxOffsetScanLPhase03;
		public Vec3d fxOffsetScanRPhase01;
		public Vec3d fxOffsetScanRPhase02;
		public Vec3d fxOffsetScanRPhase03;
		public Vec3d fxOffsetScanLFlippedPhase01;
		public Vec3d fxOffsetScanLFlippedPhase02;
		public Vec3d fxOffsetScanLFlippedPhase03;
		public Vec3d fxOffsetScanRFlippedPhase01;
		public Vec3d fxOffsetScanRFlippedPhase02;
		public Vec3d fxOffsetScanRFlippedPhase03;
		public Vec3d fxOffsetScanLUpFlippedPhase03;
		public Vec3d fxOffsetScanRUpFlippedPhase03;
		public Vec3d fxOffsetDiamondGlow;
		public Vec3d fxOffsetEyeGlowL;
		public Vec3d fxOffsetEyeGlowR;
		public int registerInCamEnabled;
		public float registerInCamDelay;
		public Path logoPath;
		public Path deathSkelPart01Path;
		public Path deathSkelPart02Path;
		public Path deathSkelPart03Path;
		public Vec2d deathSkelPartScale;
		public float deathSkelBlendDuration;
		public float fxDelayChargeUp;
		public float scanBrightAlphaCoef;
		public float scanBrightDuration;
		public float scanBlendDuration;
		public float scanLowAlphaCoef;
		public float scanLowDuration;
		public float scanFadeOutDuration;
		public float scanFadeInDuration;
		public float snakeScaleCoefStart;
		public float snakeScaleCoefMedium;
		public float snakeScaleCoefEnd;
		public float snakeScaleCoefMediumStart;
		public float snakeScaleCoefMediumEnd;
		public float wakeUpDuration;
		public Angle headRotationAngleMax;
		public float scanEyePosblend;
		public float laserFadeDuration;
		public float laserFadeAlphaMin;
		public float moveSinusBlend;
		public float moveSinusAmplitude;
		public float moveSinusPeriod;
		public float moveSinusOffset;
		public float changeColorBlendDuration;
		public float tailScaleFactor;
		public float scanMaxLength;
		public float laserAlphaSinusPeriod;
		public float laserAlphaSinusBlend;
		public float laserFadePart01Duration;
		public float laserFadePart02Duration;
		public float laserFadePart03Duration;
		public float laserFadePart04Duration;
		public float laserFadePart01StartTime;
		public float laserFadePart02StartTime;
		public float laserFadePart03StartTime;
		public float laserFadePart04StartTime;
		public float lastModuleScaleCoef;
		public Vec2d headExplodeScale;
		public float laserMiddleFadeAlphaMin;
		protected override void SerializeImpl(CSerializerObject s) {
			base.SerializeImpl(s);
			DrawDebugHit = s.Serialize<int>(DrawDebugHit, name: "DrawDebugHit");
			BodyPath = s.SerializeObject<Path>(BodyPath, name: "BodyPath");
			TailPath = s.SerializeObject<Path>(TailPath, name: "TailPath");
			modulesAnimOffset = s.Serialize<float>(modulesAnimOffset, name: "modulesAnimOffset");
			vulnerabilityDuration = s.Serialize<float>(vulnerabilityDuration, name: "vulnerabilityDuration");
			hitCooldownDuration = s.Serialize<float>(hitCooldownDuration, name: "hitCooldownDuration");
			maxBashingHitcount = s.Serialize<uint>(maxBashingHitcount, name: "maxBashingHitcount");
			attackHitDuration = s.Serialize<float>(attackHitDuration, name: "attackHitDuration");
			projectilesEnabled = s.Serialize<int>(projectilesEnabled, name: "projectilesEnabled");
			projectilesPath = s.SerializeObject<Path>(projectilesPath, name: "projectilesPath");
			projectilesTrajectoryCount = s.Serialize<uint>(projectilesTrajectoryCount, name: "projectilesTrajectoryCount");
			projectilesTrajectoryAngleMax = s.SerializeObject<Angle>(projectilesTrajectoryAngleMax, name: "projectilesTrajectoryAngleMax");
			projectileWaveCount = s.Serialize<uint>(projectileWaveCount, name: "projectileWaveCount");
			projectileWaveTime = s.Serialize<float>(projectileWaveTime, name: "projectileWaveTime");
			projetileLaunchOffset = s.SerializeObject<Vec3d>(projetileLaunchOffset, name: "projetileLaunchOffset");
			attackWaitDuration = s.Serialize<float>(attackWaitDuration, name: "attackWaitDuration");
			laserShootDuration = s.Serialize<float>(laserShootDuration, name: "laserShootDuration");
			laserMax = s.Serialize<uint>(laserMax, name: "laserMax");
			cameraSpeedFactorMin = s.Serialize<float>(cameraSpeedFactorMin, name: "cameraSpeedFactorMin");
			cameraSpeedFactorMax = s.Serialize<float>(cameraSpeedFactorMax, name: "cameraSpeedFactorMax");
			cameraSpeedBlendFactor = s.Serialize<float>(cameraSpeedBlendFactor, name: "cameraSpeedBlendFactor");
			SlowDownDist = s.Serialize<float>(SlowDownDist, name: "SlowDownDist");
			headRotationBlend = s.Serialize<float>(headRotationBlend, name: "headRotationBlend");
			faction = s.Serialize<uint>(faction, name: "faction");
			receivedHitType = s.Serialize<Enum_receivedHitType>(receivedHitType, name: "receivedHitType");
			laserMaxlength = s.Serialize<float>(laserMaxlength, name: "laserMaxlength");
			laserHarmlessPath = s.SerializeObject<Path>(laserHarmlessPath, name: "laserHarmlessPath");
			laserHarmfullPart01Path = s.SerializeObject<Path>(laserHarmfullPart01Path, name: "laserHarmfullPart01Path");
			laserHarmfullPart02Path = s.SerializeObject<Path>(laserHarmfullPart02Path, name: "laserHarmfullPart02Path");
			laserHarmfullPart03Path = s.SerializeObject<Path>(laserHarmfullPart03Path, name: "laserHarmfullPart03Path");
			laserHarmfullPart04Path = s.SerializeObject<Path>(laserHarmfullPart04Path, name: "laserHarmfullPart04Path");
			laserHarmfullScaleX = s.Serialize<float>(laserHarmfullScaleX, name: "laserHarmfullScaleX");
			laserHarmlessScaleX = s.Serialize<float>(laserHarmlessScaleX, name: "laserHarmlessScaleX");
			laserLaunchOffset = s.SerializeObject<Vec3d>(laserLaunchOffset, name: "laserLaunchOffset");
			laserShapeThickness = s.Serialize<float>(laserShapeThickness, name: "laserShapeThickness");
			immuneHitDuration = s.Serialize<float>(immuneHitDuration, name: "immuneHitDuration");
			hurtMaxPerPhase = s.Serialize<uint>(hurtMaxPerPhase, name: "hurtMaxPerPhase");
			moduleGap = s.Serialize<float>(moduleGap, name: "moduleGap");
			headGap = s.Serialize<float>(headGap, name: "headGap");
			diamondShape = s.SerializeObject<Generic<PhysShape>>(diamondShape, name: "diamondShape");
			jawUpShape = s.SerializeObject<Generic<PhysShape>>(jawUpShape, name: "jawUpShape");
			jawLowShape = s.SerializeObject<Generic<PhysShape>>(jawLowShape, name: "jawLowShape");
			laserShape = s.SerializeObject<Generic<PhysShape>>(laserShape, name: "laserShape");
			minTimeToSetPlayRate = s.Serialize<float>(minTimeToSetPlayRate, name: "minTimeToSetPlayRate");
			wakeUpModuleDelay = s.Serialize<float>(wakeUpModuleDelay, name: "wakeUpModuleDelay");
			hurtModuleDelay = s.Serialize<float>(hurtModuleDelay, name: "hurtModuleDelay");
			explodePart01Path = s.SerializeObject<Path>(explodePart01Path, name: "explodePart01Path");
			explodePart02Path = s.SerializeObject<Path>(explodePart02Path, name: "explodePart02Path");
			explodePart03Path = s.SerializeObject<Path>(explodePart03Path, name: "explodePart03Path");
			explodePartLifeTime = s.Serialize<float>(explodePartLifeTime, name: "explodePartLifeTime");
			explodePartPhaseModuleCount = s.Serialize<uint>(explodePartPhaseModuleCount, name: "explodePartPhaseModuleCount");
			biteMinTime = s.Serialize<float>(biteMinTime, name: "biteMinTime");
			biteMaxTime = s.Serialize<float>(biteMaxTime, name: "biteMaxTime");
			timeToReachMaxAcceleration = s.Serialize<float>(timeToReachMaxAcceleration, name: "timeToReachMaxAcceleration");
			minDistToMove = s.Serialize<float>(minDistToMove, name: "minDistToMove");
			minDistToStop = s.Serialize<float>(minDistToStop, name: "minDistToStop");
			minDistToOrient = s.Serialize<float>(minDistToOrient, name: "minDistToOrient");
			orientBlend = s.Serialize<float>(orientBlend, name: "orientBlend");
			fxOffsetLaserStart = s.SerializeObject<Vec3d>(fxOffsetLaserStart, name: "fxOffsetLaserStart");
			fxOffsetLaserImpact = s.SerializeObject<Vec3d>(fxOffsetLaserImpact, name: "fxOffsetLaserImpact");
			fxOffsetGrowlSmokePhase01 = s.SerializeObject<Vec3d>(fxOffsetGrowlSmokePhase01, name: "fxOffsetGrowlSmokePhase01");
			fxOffsetGrowlSmokePhase02 = s.SerializeObject<Vec3d>(fxOffsetGrowlSmokePhase02, name: "fxOffsetGrowlSmokePhase02");
			fxOffsetGrowlSmokePhase03 = s.SerializeObject<Vec3d>(fxOffsetGrowlSmokePhase03, name: "fxOffsetGrowlSmokePhase03");
			fxOffsetEyeR = s.SerializeObject<Vec3d>(fxOffsetEyeR, name: "fxOffsetEyeR");
			fxOffsetEyeL = s.SerializeObject<Vec3d>(fxOffsetEyeL, name: "fxOffsetEyeL");
			fxOffsetDiamond = s.SerializeObject<Vec3d>(fxOffsetDiamond, name: "fxOffsetDiamond");
			fxOffsetScanLPhase01 = s.SerializeObject<Vec3d>(fxOffsetScanLPhase01, name: "fxOffsetScanLPhase01");
			fxOffsetScanLPhase02 = s.SerializeObject<Vec3d>(fxOffsetScanLPhase02, name: "fxOffsetScanLPhase02");
			fxOffsetScanLPhase03 = s.SerializeObject<Vec3d>(fxOffsetScanLPhase03, name: "fxOffsetScanLPhase03");
			fxOffsetScanRPhase01 = s.SerializeObject<Vec3d>(fxOffsetScanRPhase01, name: "fxOffsetScanRPhase01");
			fxOffsetScanRPhase02 = s.SerializeObject<Vec3d>(fxOffsetScanRPhase02, name: "fxOffsetScanRPhase02");
			fxOffsetScanRPhase03 = s.SerializeObject<Vec3d>(fxOffsetScanRPhase03, name: "fxOffsetScanRPhase03");
			fxOffsetScanLFlippedPhase01 = s.SerializeObject<Vec3d>(fxOffsetScanLFlippedPhase01, name: "fxOffsetScanLFlippedPhase01");
			fxOffsetScanLFlippedPhase02 = s.SerializeObject<Vec3d>(fxOffsetScanLFlippedPhase02, name: "fxOffsetScanLFlippedPhase02");
			fxOffsetScanLFlippedPhase03 = s.SerializeObject<Vec3d>(fxOffsetScanLFlippedPhase03, name: "fxOffsetScanLFlippedPhase03");
			fxOffsetScanRFlippedPhase01 = s.SerializeObject<Vec3d>(fxOffsetScanRFlippedPhase01, name: "fxOffsetScanRFlippedPhase01");
			fxOffsetScanRFlippedPhase02 = s.SerializeObject<Vec3d>(fxOffsetScanRFlippedPhase02, name: "fxOffsetScanRFlippedPhase02");
			fxOffsetScanRFlippedPhase03 = s.SerializeObject<Vec3d>(fxOffsetScanRFlippedPhase03, name: "fxOffsetScanRFlippedPhase03");
			fxOffsetScanLUpFlippedPhase03 = s.SerializeObject<Vec3d>(fxOffsetScanLUpFlippedPhase03, name: "fxOffsetScanLUpFlippedPhase03");
			fxOffsetScanRUpFlippedPhase03 = s.SerializeObject<Vec3d>(fxOffsetScanRUpFlippedPhase03, name: "fxOffsetScanRUpFlippedPhase03");
			fxOffsetDiamondGlow = s.SerializeObject<Vec3d>(fxOffsetDiamondGlow, name: "fxOffsetDiamondGlow");
			fxOffsetEyeGlowL = s.SerializeObject<Vec3d>(fxOffsetEyeGlowL, name: "fxOffsetEyeGlowL");
			fxOffsetEyeGlowR = s.SerializeObject<Vec3d>(fxOffsetEyeGlowR, name: "fxOffsetEyeGlowR");
			registerInCamEnabled = s.Serialize<int>(registerInCamEnabled, name: "registerInCamEnabled");
			registerInCamDelay = s.Serialize<float>(registerInCamDelay, name: "registerInCamDelay");
			logoPath = s.SerializeObject<Path>(logoPath, name: "logoPath");
			deathSkelPart01Path = s.SerializeObject<Path>(deathSkelPart01Path, name: "deathSkelPart01Path");
			deathSkelPart02Path = s.SerializeObject<Path>(deathSkelPart02Path, name: "deathSkelPart02Path");
			deathSkelPart03Path = s.SerializeObject<Path>(deathSkelPart03Path, name: "deathSkelPart03Path");
			deathSkelPartScale = s.SerializeObject<Vec2d>(deathSkelPartScale, name: "deathSkelPartScale");
			deathSkelBlendDuration = s.Serialize<float>(deathSkelBlendDuration, name: "deathSkelBlendDuration");
			fxDelayChargeUp = s.Serialize<float>(fxDelayChargeUp, name: "fxDelayChargeUp");
			scanBrightAlphaCoef = s.Serialize<float>(scanBrightAlphaCoef, name: "scanBrightAlphaCoef");
			scanBrightDuration = s.Serialize<float>(scanBrightDuration, name: "scanBrightDuration");
			scanBlendDuration = s.Serialize<float>(scanBlendDuration, name: "scanBlendDuration");
			scanLowAlphaCoef = s.Serialize<float>(scanLowAlphaCoef, name: "scanLowAlphaCoef");
			scanLowDuration = s.Serialize<float>(scanLowDuration, name: "scanLowDuration");
			scanFadeOutDuration = s.Serialize<float>(scanFadeOutDuration, name: "scanFadeOutDuration");
			scanFadeInDuration = s.Serialize<float>(scanFadeInDuration, name: "scanFadeInDuration");
			snakeScaleCoefStart = s.Serialize<float>(snakeScaleCoefStart, name: "snakeScaleCoefStart");
			snakeScaleCoefMedium = s.Serialize<float>(snakeScaleCoefMedium, name: "snakeScaleCoefMedium");
			snakeScaleCoefEnd = s.Serialize<float>(snakeScaleCoefEnd, name: "snakeScaleCoefEnd");
			snakeScaleCoefMediumStart = s.Serialize<float>(snakeScaleCoefMediumStart, name: "snakeScaleCoefMediumStart");
			snakeScaleCoefMediumEnd = s.Serialize<float>(snakeScaleCoefMediumEnd, name: "snakeScaleCoefMediumEnd");
			wakeUpDuration = s.Serialize<float>(wakeUpDuration, name: "wakeUpDuration");
			headRotationAngleMax = s.SerializeObject<Angle>(headRotationAngleMax, name: "headRotationAngleMax");
			scanEyePosblend = s.Serialize<float>(scanEyePosblend, name: "scanEyePosblend");
			laserFadeDuration = s.Serialize<float>(laserFadeDuration, name: "laserFadeDuration");
			laserFadeAlphaMin = s.Serialize<float>(laserFadeAlphaMin, name: "laserFadeAlphaMin");
			moveSinusBlend = s.Serialize<float>(moveSinusBlend, name: "moveSinusBlend");
			moveSinusAmplitude = s.Serialize<float>(moveSinusAmplitude, name: "moveSinusAmplitude");
			moveSinusPeriod = s.Serialize<float>(moveSinusPeriod, name: "moveSinusPeriod");
			moveSinusOffset = s.Serialize<float>(moveSinusOffset, name: "moveSinusOffset");
			changeColorBlendDuration = s.Serialize<float>(changeColorBlendDuration, name: "changeColorBlendDuration");
			tailScaleFactor = s.Serialize<float>(tailScaleFactor, name: "tailScaleFactor");
			scanMaxLength = s.Serialize<float>(scanMaxLength, name: "scanMaxLength");
			laserAlphaSinusPeriod = s.Serialize<float>(laserAlphaSinusPeriod, name: "laserAlphaSinusPeriod");
			laserAlphaSinusBlend = s.Serialize<float>(laserAlphaSinusBlend, name: "laserAlphaSinusBlend");
			laserFadePart01Duration = s.Serialize<float>(laserFadePart01Duration, name: "laserFadePart01Duration");
			laserFadePart02Duration = s.Serialize<float>(laserFadePart02Duration, name: "laserFadePart02Duration");
			laserFadePart03Duration = s.Serialize<float>(laserFadePart03Duration, name: "laserFadePart03Duration");
			laserFadePart04Duration = s.Serialize<float>(laserFadePart04Duration, name: "laserFadePart04Duration");
			laserFadePart01StartTime = s.Serialize<float>(laserFadePart01StartTime, name: "laserFadePart01StartTime");
			laserFadePart02StartTime = s.Serialize<float>(laserFadePart02StartTime, name: "laserFadePart02StartTime");
			laserFadePart03StartTime = s.Serialize<float>(laserFadePart03StartTime, name: "laserFadePart03StartTime");
			laserFadePart04StartTime = s.Serialize<float>(laserFadePart04StartTime, name: "laserFadePart04StartTime");
			lastModuleScaleCoef = s.Serialize<float>(lastModuleScaleCoef, name: "lastModuleScaleCoef");
			headExplodeScale = s.SerializeObject<Vec2d>(headExplodeScale, name: "headExplodeScale");
			laserMiddleFadeAlphaMin = s.Serialize<float>(laserMiddleFadeAlphaMin, name: "laserMiddleFadeAlphaMin");
		}
		public enum Enum_receivedHitType {
			[Serialize("Value__1")] Value__1 = -1,
			[Serialize("Value_0" )] Value_0 = 0,
			[Serialize("Value_1" )] Value_1 = 1,
			[Serialize("Value_3" )] Value_3 = 3,
			[Serialize("Value_4" )] Value_4 = 4,
			[Serialize("Value_5" )] Value_5 = 5,
			[Serialize("Value_6" )] Value_6 = 6,
			[Serialize("Value_7" )] Value_7 = 7,
		}
		public override uint? ClassCRC => 0x78DF3D31;
	}
}

